Statistical Code

The program is written in R.

View Code


myeloma_frailty_index = function(age, cpoint01, cpoint02, cpoint03, cpoint04,
                                 cpoint05, cpoint06, cpoint07, cpoint08,
                                 cpoint09, cpoint10, cpoint11, cpoint12,
                                 cpoint13, cpoint14, cpoint15, cpoint16,
                                 apoint01, apoint02, apoint03, apoint04,
                                 apoint05, apoint06, ipoint01, ipoint02,
                                 ipoint03, ipoint04, ipoint05, ipoint06,
                                 ipoint07, ipoint08)
{
    #Age component  
    if (age<=75) {agepoint=0}
    else if (age>75 & age<=80) {agepoint=1}
    else if (age>80) {agepoint=2}
    
    #sum the components of CCI, ADL, IADL
    cscore=sum(cpoint01,cpoint02,cpoint03,cpoint04,cpoint05,cpoint06,
               cpoint07,cpoint08,cpoint09,cpoint10,cpoint11,cpoint12,
               cpoint13,cpoint14,cpoint15,cpoint16)
    ascore=sum(apoint01,apoint02,apoint03,apoint04,apoint05,apoint06)
    iscore=sum(ipoint01,ipoint02,ipoint03,ipoint04,ipoint05,ipoint06,
               ipoint07,ipoint08)
    
    #Code number of points for each component of Myeloma Frailty Index
    #based on cutoffs, algorithm from Palumbo et al., 2015
    #CCI: >=2 counts as 1 point
    #ADL: <=4 counts as 1 point
    #IADL: <=5 counts as 1 point
    agemfi=agepoint
    if (cscore<2) {ccimfi=0}
    else if (cscore>=2) {ccimfi=1}
    if (ascore>4) {adlmfi=0}
    else if (ascore<=4) {adlmfi=1}
    if (iscore>5) {iadlmfi=0}
    else if (iscore<=5) {iadlmfi=1}
    
    #sum up MFI components to compute index, create text interpretations
    mfiscore=sum(agemfi,ccimfi,adlmfi,iadlmfi)
    if (mfiscore==0){mfitext="Fit"}
    else if (mfiscore==1){mfitext="Intermediate Fit"}
    else if (mfiscore>=2){mfitext="Frail"}
    
    #Return final score and text interpretation
    #Also return individual component scores
    mfireturn= list(
        mfiscore = mfiscore,
        mfitext = mfitext,
        cscore = cscore,
        ascore = ascore,
        iscore = iscore
    )
    
    return(mfireturn)
}